package dubbo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class App3 {
	private static final Logger logger = LoggerFactory.getLogger(App3.class);

	public static void main(String[] args) {
		// 使用dubboMain方式启动，需要配置文件dubbo.properties，默认自动加载。项目只使用dubbo服务最简单形式，
		// dubbo必须集成使用spring作为服务容器，但不依赖使用用spring mvc或spring boot来启动服务
		com.alibaba.dubbo.container.Main.main(args);
		System.out.println("===============================================================================");
		System.out.println("===================APP3 Started Success FOR dubbo.server3======================");
		System.out.println("===============================================================================");
		//以下使用显示加载外部配置文件，方便服务器部署需求，一般也不需要这种形式，而是采用shell脚本将指定的配置文件压缩放入到包中替换原来的配置文件即可。
		/*try {
			//FileSystemXmlApplicationContext总是会将path的首个"/"符号去掉，所以这里需要前面多加一个"/"，这样就能使用绝对路径了。
			//否则去掉"/"后会变成一个相对路径，这样就加载不到配置文件了，相对路径的绝对路径会变成"/root/mydata/apps/config/application_server3.xml"
			String file ="//mydata/apps/config/application_server3.xml";
			logger.error("配置文件路径："+file);
			FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext(file);
			context.start();
		} catch (Exception e) {
			logger.error("配置文件读取错误：",e);
			ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:dubbo-provider.xml");
			context.start();
		}
		System.out.println("===============================================================================");
		System.out.println("===================APP3 Started Success FOR dubbo.server3======================");
		System.out.println("===============================================================================");
		synchronized (App3.class) {
			while (true) {
				try {
					App3.class.wait();
				} catch (Throwable e) {
				}
			}
		}*/
	}
}
